// import com.alibaba.druid.sql.ast.SQLExpr;
// import com.alibaba.druid.sql.ast.SQLObjectImpl;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;

#include "SQLAlterTableConvertCharSet.h"
#include "../SQLExpr.h"
#include "../../visitor/SQLASTVisitor.h"

SQLAlterTableConvertCharSet::SQLAlterTableConvertCharSet()
{
}

SQLExpr_ptr SQLAlterTableConvertCharSet::getCharset()
{
  return charset;
}

void SQLAlterTableConvertCharSet::setCharset(SQLExpr_ptr charset)
{
  if (charset != nullptr)
  {
    charset->setParent(SharedObject(SQLAlterTableConvertCharSet));
  }
  this->charset = charset;
}

SQLExpr_ptr SQLAlterTableConvertCharSet::getCollate()
{
  return collate;
}

void SQLAlterTableConvertCharSet::setCollate(SQLExpr_ptr collate)
{
  if (collate != nullptr)
  {
    collate->setParent(SharedObject(SQLAlterTableConvertCharSet));
  }
  this->collate = collate;
}

// @Override
void SQLAlterTableConvertCharSet::accept0(SQLASTVisitor_ptr visitor)
{
  if (visitor->visit(SharedObject(SQLAlterTableConvertCharSet)))
  {
    acceptChild(visitor, charset);
    acceptChild(visitor, collate);
  }
  visitor->endVisit(SharedObject(SQLAlterTableConvertCharSet));
}
